package jmvm.components;

public class KMOPR2 extends LogicalComponent {

	public KMOPR2() {				
		super(57, 1, false);
		out[0].setIsInt();
	}

	public void func() {
		int i = 0;
		for (i = 0; i < in.length; i++) {
			if (in[i].getBoolVal())
				break;
		}
		switch (i) {				 // DEC OPR HEX
		case 0:
			out[0].setIntVal(0x51);
			break; // NOP
		case 1:
			out[0].setIntVal(0x52);
			break; // HALT
		case 2:
			out[0].setIntVal(0x53);
			break; // INTD
		case 3:
			out[0].setIntVal(0x54);
			break; // INTE
		case 4:
			out[0].setIntVal(0x55);
			break; // TRPD
		case 5:
			out[0].setIntVal(0x56);
			break; // TRPE
		case 6:
			out[0].setIntVal(0x57);
			break; // LDB
		case 7:
			out[0].setIntVal(0x59);
			break; // LDW
		case 8:
			out[0].setIntVal(0x5A);
			break; // STB
		case 9:
			out[0].setIntVal(0x60);
			break; // STW
		case 10:
			out[0].setIntVal(0x69);
			break; // POPB
		case 11:
			out[0].setIntVal(0x6F);
			break; // POPW
		case 12:
			out[0].setIntVal(0x79);
			break; // PUSHB
		case 13:
			out[0].setIntVal(0x7F);
			break; // PUSHW
		case 14:
			out[0].setIntVal(0x8A);
			break; // LDIVTP
		case 15:
			out[0].setIntVal(0x8B);
			break; // STIVTP
		case 16:
			out[0].setIntVal(0x8C);
			break; // LDIMR
		case 17:
			out[0].setIntVal(0x8D);
			break; // STIMR
		case 18:
			out[0].setIntVal(0x8E);
			break; // LDSP
		case 19:
			out[0].setIntVal(0x8F);
			break; // STSP
		case 20:
			out[0].setIntVal(0x90);
			break; // ADD
		case 21:
			out[0].setIntVal(0x92);
			break; // SUB
		case 22:
			out[0].setIntVal(0x94);
			break; // INC
		case 23:
			out[0].setIntVal(0x96);
			break; // DEC
		case 24:
			out[0].setIntVal(0x98);
			break; // AND
		case 25:
			out[0].setIntVal(0x9A);
			break; // OR
		case 26:
			out[0].setIntVal(0x9C);
			break; // XOR
		case 27:
			out[0].setIntVal(0x9E);
			break; // NOT
		case 28:
			out[0].setIntVal(0xA0);
			break; // ASR
		case 29:
			out[0].setIntVal(0xA0);
			break; // LSR
		case 30:
			out[0].setIntVal(0xA0);
			break; // ROR
		case 31:
			out[0].setIntVal(0xA0);
			break; // RORC
		case 32:
			out[0].setIntVal(0xA2);
			break; // ASL
		case 33:
			out[0].setIntVal(0xA2);
			break; // LSL
		case 34:
			out[0].setIntVal(0xA2);
			break; // ROL
		case 35:
			out[0].setIntVal(0xA2);
			break; // ROLC
		case 36:
			out[0].setIntVal(0xA4);
			break; // BEQL
		case 37:
			out[0].setIntVal(0xA4);
			break; // BNEQ
		case 38:
			out[0].setIntVal(0xA4);
			break; // BNEG
		case 39:
			out[0].setIntVal(0xA4);
			break; // BNNEG
		case 40:
			out[0].setIntVal(0xA4);
			break; // BOVF
		case 41:
			out[0].setIntVal(0xA4);
			break; // BNOVF
		case 42:
			out[0].setIntVal(0xA4);
			break; // BCAR
		case 43:
			out[0].setIntVal(0xA4);
			break; // BNCAR
		case 44:
			out[0].setIntVal(0xA4); 
				   // BGRT
			break;
		case 45:
			out[0].setIntVal(0xA4); 
				   // BGRE
			break;
		case 46:
			out[0].setIntVal(0xA4); 
				   // BLSS
			break;
		case 47:
			out[0].setIntVal(0xA4); 
				   // BLSSE
			break;
		case 48:
			out[0].setIntVal(0xA4); 
				   // BGRTU
			break;
		case 49:
			out[0].setIntVal(0xA4); 
				   // BGRTEU
			break;
		case 50:
			out[0].setIntVal(0xA4); 
				   // BLSSU
			break;
		case 51:
			out[0].setIntVal(0xA4); 
				   // BLSSEU
			break;
		case 52:
			out[0].setIntVal(0xA8); 
				   // JMP
			break;
		case 53:
			out[0].setIntVal(0xA9); 
				   // INT
			break;
		case 54:
			out[0].setIntVal(0xAA); 
				   // JSR
			break;
		case 55:
			out[0].setIntVal(0xB5); 
				   // RTI
			break;
		case 56:
			out[0].setIntVal(0xBD); 
				   // RTS
		}
		
	}
}
